a11y: Add API to retrieve accessible values
authorEmmanuele Bassi <ebassi@gnome.org>
Sun, 26 Jul 2020 14:50:55 +0000 (15:50 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Sun, 26 Jul 2020 19:49:08 +0000 (20:49 +0100)
We are going to use this for implementing ATContext subclasses, but also
in the testing API.

gtk/gtkatcontext.c
gtk/gtkatcontextprivate.h

index 9affb1f134d963f39d378ed82fb6bd5b839860bc..b5eadcd89409ca252b34afd27494fadabaacf447 100644 (file)
@@ -452,6 +452,24 @@ gtk_at_context_has_accessible_state (GtkATContext       *self,
   return gtk_accessible_attribute_set_contains (self->states, state);
 }
 
+/*< private >
+ * gtk_at_context_get_accessible_state:
+ * @self: a #GtkATContext
+ * @state: a #GtkAccessibleState
+ *
+ * Retrieves the value for the accessible state of a #GtkATContext.
+ *
+ * Returns: (transfer none): the value for the given state
+ */
+GtkAccessibleValue *
+gtk_at_context_get_accessible_state (GtkATContext       *self,
+                                     GtkAccessibleState  state)
+{
+  g_return_val_if_fail (GTK_IS_AT_CONTEXT (self), NULL);
+
+  return gtk_accessible_attribute_set_get_value (self->states, state);
+}
+
 /*< private >
  * gtk_at_context_set_accessible_property:
  * @self: a #GtkATContext
@@ -496,6 +514,24 @@ gtk_at_context_has_accessible_property (GtkATContext          *self,
   return gtk_accessible_attribute_set_contains (self->properties, property);
 }
 
+/*< private >
+ * gtk_at_context_get_accessible_property:
+ * @self: a #GtkATContext
+ * @property: a #GtkAccessibleProperty
+ *
+ * Retrieves the value for the accessible property of a #GtkATContext.
+ *
+ * Returns: (transfer none): the value for the given property
+ */
+GtkAccessibleValue *
+gtk_at_context_get_accessible_property (GtkATContext          *self,
+                                        GtkAccessibleProperty  property)
+{
+  g_return_val_if_fail (GTK_IS_AT_CONTEXT (self), NULL);
+
+  return gtk_accessible_attribute_set_get_value (self->properties, property);
+}
+
 /*< private >
  * gtk_at_context_set_accessible_relation:
  * @self: a #GtkATContext
@@ -539,3 +575,21 @@ gtk_at_context_has_accessible_relation (GtkATContext          *self,
 
   return gtk_accessible_attribute_set_contains (self->relations, relation);
 }
+
+/*< private >
+ * gtk_at_context_get_accessible_relation:
+ * @self: a #GtkATContext
+ * @relation: a #GtkAccessibleRelation
+ *
+ * Retrieves the value for the accessible relation of a #GtkATContext.
+ *
+ * Returns: (transfer none): the value for the given relation
+ */
+GtkAccessibleValue *
+gtk_at_context_get_accessible_relation (GtkATContext          *self,
+                                        GtkAccessibleRelation  relation)
+{
+  g_return_val_if_fail (GTK_IS_AT_CONTEXT (self), NULL);
+
+  return gtk_accessible_attribute_set_get_value (self->relations, relation);
+}
index 8c10db276c0c1a0de51fc318dd90a1e1a9c84b47..7fe7a064304d629fef4b3b837c68589762a2af40 100644 (file)
@@ -105,26 +105,32 @@ struct _GtkATContextClass
                          GtkAccessibleAttributeSet   *relations);
 };
 
-GtkATContext *  gtk_at_context_create                   (GtkAccessibleRole      accessible_role,
-                                                         GtkAccessible         *accessible);
-
-void            gtk_at_context_update                   (GtkATContext          *self);
-
-void            gtk_at_context_set_accessible_state     (GtkATContext          *self,
-                                                         GtkAccessibleState     state,
-                                                         GtkAccessibleValue    *value);
-gboolean        gtk_at_context_has_accessible_state     (GtkATContext          *self,
-                                                         GtkAccessibleState     state);
-void            gtk_at_context_set_accessible_property  (GtkATContext          *self,
-                                                         GtkAccessibleProperty  property,
-                                                         GtkAccessibleValue    *value);
-gboolean        gtk_at_context_has_accessible_property  (GtkATContext          *self,
-                                                         GtkAccessibleProperty  property);
-void            gtk_at_context_set_accessible_relation  (GtkATContext          *self,
-                                                         GtkAccessibleRelation  property,
-                                                         GtkAccessibleValue    *value);
-gboolean        gtk_at_context_has_accessible_relation  (GtkATContext          *self,
-                                                         GtkAccessibleRelation  relation);
+GtkATContext *          gtk_at_context_create                   (GtkAccessibleRole      accessible_role,
+                                                                 GtkAccessible         *accessible);
+
+void                    gtk_at_context_update                   (GtkATContext          *self);
+
+void                    gtk_at_context_set_accessible_state     (GtkATContext          *self,
+                                                                 GtkAccessibleState     state,
+                                                                 GtkAccessibleValue    *value);
+gboolean                gtk_at_context_has_accessible_state     (GtkATContext          *self,
+                                                                 GtkAccessibleState     state);
+GtkAccessibleValue *    gtk_at_context_get_accessible_state     (GtkATContext          *self,
+                                                                 GtkAccessibleState     state);
+void                    gtk_at_context_set_accessible_property  (GtkATContext          *self,
+                                                                 GtkAccessibleProperty  property,
+                                                                 GtkAccessibleValue    *value);
+gboolean                gtk_at_context_has_accessible_property  (GtkATContext          *self,
+                                                                 GtkAccessibleProperty  property);
+GtkAccessibleValue *    gtk_at_context_get_accessible_property  (GtkATContext          *self,
+                                                                 GtkAccessibleProperty  property);
+void                    gtk_at_context_set_accessible_relation  (GtkATContext          *self,
+                                                                 GtkAccessibleRelation  property,
+                                                                 GtkAccessibleValue    *value);
+gboolean                gtk_at_context_has_accessible_relation  (GtkATContext          *self,
+                                                                 GtkAccessibleRelation  relation);
+GtkAccessibleValue *    gtk_at_context_get_accessible_relation  (GtkATContext          *self,
+                                                                 GtkAccessibleRelation  relation);
 
 const char *    gtk_accessible_property_get_attribute_name      (GtkAccessibleProperty property);
 const char *    gtk_accessible_relation_get_attribute_name      (GtkAccessibleRelation relation);